package com.heatup.apt.management.service.coach;

import com.baomidou.framework.service.ISuperService;
import com.heatup.apt.model.Resource;
import com.heatup.apt.model.api.ResourceModel;
import com.heatup.apt.model.coach.CoachInfo;
import com.heatup.apt.model.coach.CoachStoreInfo;
import com.heatup.apt.model.store.StoreCoach;

import java.util.List;
import java.util.Map;

/**
 * Created by b3st9u on 16/8/22.
 */
public interface CoachService extends ISuperService<CoachInfo> {

        /**
     * 修改教练信息
     *
     * @param coachInfo
     */
    public boolean updateCoach(CoachInfo coachInfo);

    /**
     * 新增教练信息
     *
     * @param coachInfo
     */
    public int addCoach(CoachInfo coachInfo);

    /**
     * 查询教练列表
     *
     * @param coachName
     * @param storeId
     * @param level
     * @param status
     * @param page
     * @param limit
     * @return
     */
    public Map<String, Object> queryCoachList(String coachName, int storeId, int level, String status, int page, int limit);

    /**
     * 查看教练信息
     *
     * @param coachId
     * @return
     */
    public CoachStoreInfo showCoachById(int coachId);

    /**
     * 增加教练与门店关系
     *
     * @param storeCoach
     * @return
     */
    public int addStoreCoach(StoreCoach storeCoach);
    
    /**
     * 查询所有教练
     * @return
     */
    List<CoachInfo> queryAllCoachInfo();
       /**     * 增加教练视频，硬照资源
     *
     * @param coachInfo
     * @param type  1：图片 2：视频
     * @param images 资源地址，多个资源逗号分开
     * @return
     */
    public void addResource(CoachInfo coachInfo, int type, String images);
    /**
     * 根据教练id查询教练对应图片/视频／文章
     * @return
     */
    public Map<String, List<ResourceModel>> selectResourceByCoachId(int id);
    /**
     * 根据教练id删除教练对应图片/视频／文章
     *
     * @param id
     * @return
     */
    public void deleteResource(int id,String fileName);
    /**
     * 根据resource id修改教练对应图片/视频／文章
     *
     * @param
     * @return
     */
    public void updateResource(Resource record);

    /**
     * 保存教练
     * @param coachInfo
     * @return
     */
    boolean saveCoach(CoachInfo coachInfo);

    /**
     * 分页查询教练
     * @param paramsMap
     * @return
     */
    Map<String,Object> queryCoachPageList(Map<String, Object> paramsMap);

    /**
     * 根据教练ID查询教练
     * @param id
     * @return
     */
    CoachInfo queryCoachById(Integer id);

    /**
     * 根据教练ID删除教练
     * @param id
     * @return
     */
    boolean delCoachById(Integer id);

    /**
     * 教练离职
     * @param id
     * @return
     */
    boolean offlineCoachById(Integer id);

    /**
     * 查询教练列表 只返回 ID /nickName
     *
     * @return 返回教练列表 只返回 ID /nickName
     * @author blank 2017/7/31 下午9:15
     */
    List<CoachInfo> queryCoachIdAndNickName();

    /**
     * 私教教练修改排序
     *
     * @return 修改条数
     * @author blank 2017/8/7 下午4:29
     */
    Integer updateSort(String sortString);
    
    /**
     * 查询所有的教练
     * 可以根据教练的类型来查询
     * 也可以查询全部
     * @param parm
     * @return
     */
    List<CoachInfo> queryAllCoachInfoByCoachType(Map<String,Object> parm);

    /**
     * 查询所有教练私教轮排
     *
     * @return 所有教练私教轮排
     * @author blank 2017/8/25 下午1:02
     */
    Map<String,Object> queryCoachPrivateSortList(Map<String, Object> paramsMap);
}
